/**
 * 
 */
package com.nari.interfaces.service;

import java.util.Date;
import java.util.List;

import com.nari.coreframe.service.IGenericService;
import com.nari.interfaces.model.IHeatMeterData24Gather;
import com.nari.interfaces.utils.queryvo.HeatMeterData24RealtimeStatis;
import com.nari.platform.model.PageCond;
import com.nari.platform.model.ResponseMsg;
import com.nari.platform.model.ResultWithPageCond;

/**
 * 
 * @author Xiaopeng
 * @date 2015-1-12
 */
public interface IHeatMeterData24GatherService extends IGenericService<IHeatMeterData24Gather, String> {

	/**
	 * 批量新增集抄的热量表数据（规则：每小时上传一次）
	 * @param meterDataList
	 * @param dataFileID 掌机文件或数据文件UID
	 * @param dataType 数据类型（为痕迹文件等备用）
	 * @return 返回成功新增的热量表数据的条目数
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2015-1-15
	 */
	public int saveMeterDataBatch(List<IHeatMeterData24Gather> meterDataList, String dataFileID, 
			Integer dataType) throws Exception;
	
	/**
	 * 热量表分时集抄数据抽取到正式库中
	 * (1)从前一天24小时上传的数据中抽取一条热量表数据，放到正式库中，
	 * 作为系统分摊分析使用（抽取规则是取累计热量为最大值的一条）；
	 * (2)抽取当天日期的（从0点到5点）热量表数据作为当天的抄表记录，
	 * 方便查看使用（抽取规则同上）。
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2015-1-19
	 */
	public void saveExtractMeterDataJobTask() throws Exception;
	
	/**
	 * 分页查询热量表分时数据的统计列表
	 * @param meterNo
	 * @param recordTimeStart
	 * @param recordTimeEnd
	 * @param pageCond
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2015-1-21
	 */
	public ResultWithPageCond<HeatMeterData24RealtimeStatis> queryMeterDataStatis(String meterNo, 
			Date recordTimeStart, Date recordTimeEnd, PageCond pageCond) throws Exception;
	
	/**
	 * 根据热量表表号、抄表日期查询热量表分时数据的统计详细信息
	 * @param meterNo
	 * @param recordTime
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2015-1-22
	 */
	public HeatMeterData24RealtimeStatis queryMeterDataStatisDetail(String meterNo, 
			Date recordTime) throws Exception;
	
	/**
	 * 按统计批次查询热量表分时数据列表
	 * @param meterNo
	 * @param recordTime
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2015-1-22
	 */
	public List<IHeatMeterData24Gather> queryMeterDataList4Statis(String meterNo, 
			Date recordTime) throws Exception;
	
	/**
	 * 按统计批次删除热量表分时数据
	 * @param meterNo
	 * @param recordTime
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2015-1-22
	 */
	public ResponseMsg deleteMeterDataStatis(String meterNo, Date recordTime) throws Exception;
}
